home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_200 / 255_01 / gpparms.asm < prev    next >
Assembly Source File  |  1988-03-28  |  3KB  |  166 lines

  1.       page     80,132
  2.       page
  3. ;
  4. ;      Kent Cedola
  5. ;      2015 Meadow Lake Court
  6. ;      Norfolk, Virginia  23518
  7. ;
  8.  
  9. dgroup      group  _data
  10. _data     segment word public 'data'
  11.  
  12.       assume ds:dgroup
  13.  
  14.       public _gdtype,_gdother,_gdmemory
  15.       public _gdmaxcol,_gdmaxrow,_gdmaxpal,_gdmaxclr
  16.       public _gdcolor,_gdmerge,_gdstyle,_gdaspc1,_gdaspc2
  17.       public _gdcur_x,_gdcur_y,_gdgseg,_gdgsadr
  18.       public _gdwd_x1,_gdwd_x2,_gdwd_x3,_gdwd_y1,_gdwd_y2,_gdwd_y3
  19.       public _gdvw_x1,_gdvw_x2,_gdvw_x3,_gdvw_y1,_gdvw_y2,_gdvw_y3
  20.       public _gdgsadr,_gdshade,_gdshad1
  21.       public _gdc_flg,_gds_flg,_gdw_flg
  22.       public _gdcurx1,_gdcury1
  23.  
  24.       public _gdwkmws,_gdwkpws,_gdwkmwa,_gdwkpwa
  25.       public _gdwkmwv,_gdwkpwv,_ddwkmwa,_ddwkpwa
  26.       public _gdwkmax,_gdwkptx,_gdwkmay,_gdwkpty
  27.       public _gdwkx1,_gdwky1,_gdwkw1,_gdwkh1
  28.       public _gdwkx2,_gdwky2,_gdwkw2,_gdwkh2
  29.  
  30. _gdtype   db     5
  31.       db     0
  32. _gdother  dw     0
  33. _gdmemory dw     64
  34. _gdmaxcol dw     639
  35. _gdmaxrow dw     349
  36. _gdmaxpal dw     16
  37. _gdmaxclr dw     64
  38.  
  39. _gdcolor  db     0
  40. _gdmerge  db     0
  41.  
  42. _gdstyle  dd     0
  43.  
  44. _gdaspc1  dw     0
  45. _gdaspc2  dw     0
  46. _gdcur_x  dw     0
  47. _gdcur_y  dw     0
  48.  
  49. _gdgseg   dw     0A000h
  50. _gdgsadr  dw     07FF8h
  51.  
  52. _gdshade  dw     0
  53. _gdshad1  db     64 dup(0)
  54.  
  55. _gdwd_x1  dw     0
  56. _gdwd_x2  dw     0
  57. _gdwd_x3  dw     0
  58. _gdwd_y1  dw     0
  59. _gdwd_y2  dw     0
  60. _gdwd_y3  dw     0
  61. _gdvw_x1  dw     0
  62. _gdvw_x2  dw     0
  63. _gdvw_x3  dw     0
  64. _gdvw_y1  dw     0
  65. _gdvw_y2  dw     0
  66. _gdvw_y3  dw     0
  67.  
  68. _gdc_flg  db     0
  69. _gds_flg  db     0
  70. _gdw_flg  db     0
  71.  
  72. _gdcurx1  dw     0
  73. _gdcury1  dw     0
  74.  
  75. _gdwkmws  dw     0               ; Maximum Number of Workspaces
  76. _gdwkpws  dw     0               ; Pointer to Workspace array
  77. _gdwkmwa  dw     0               ; Maximum Number of Workareas
  78. _gdwkpwa  dw     0               ; Pointer to Workarea array
  79. _gdwkmwv  dw     0               ; Maximum Number of Workviews
  80. _gdwkpwv  dw     0               ; Pointer to Workview array
  81. _ddwkmwa  dw     0               ; Maximum Number of Workareas, Image
  82. _ddwkpwa  dw     0               ; Pointer to Workarea array, Image
  83.  
  84. _gdwkmax  dw     0               ; Maximum Output Column Length (X)
  85. _gdwkptx  dw     0               ; Pointer to byte array used in zooming
  86. _gdwkmay  dw     0               ; Maximum Output Row Length (Y)
  87. _gdwkpty  dw     0               ; Pointer to byte array used in zooming
  88.  
  89. _gdwkx1   dw     0
  90. _gdwky1   dw     0
  91. _gdwkw1   dw     0
  92. _gdwkh1   dw     0
  93.  
  94. _gdwkx2   dw     0
  95. _gdwky2   dw     0
  96. _gdwkw2   dw     0
  97. _gdwkh2   dw     0
  98.  
  99. _data      ends
  100.  
  101. _text     segment byte public 'code'
  102.  
  103.       assume cs:_text,ds:dgroup
  104.       public _gpparms
  105. _gpparms  proc     near
  106.  
  107.       push     bp
  108.       mov     bp,sp
  109.  
  110.       mov     ah,12h
  111.       mov     bl,10h
  112.       mov     cx,-1
  113.       int     10h
  114.       cmp     cx,-1
  115.       je     not_ega
  116.       mov     _gdother,cx
  117.       mov     ch,cl
  118.       mov     al,bl
  119.       and     ax,03h
  120.       inc     ax
  121.       mov     cl,6
  122.       shl     ax,cl
  123.       mov     _gdmemory,ax
  124.       or     bl,bl
  125.       jnz     more_64k
  126.       mov     ax,4
  127.       mov     _gdmaxclr,ax
  128. more_64k:
  129.       cmp     ch,09h         ; Match switch setting on EGA board
  130.       je     ecd
  131.       cmp     ch,03h         ; Monochrome as Primary, EGA secondary
  132.       je     ecd
  133.       cmp     ch,06h
  134.       je     cg
  135.       cmp     ch,0Eh
  136.       je     cg
  137.       cmp     ch,05h
  138.       je     mono
  139.       cmp     ch,0Dh
  140.       je     mono
  141. not_ega:
  142.       xor     al,al
  143.       jmp     short done
  144. ecd:
  145.       mov     al,5
  146.       jmp     short done
  147. cg:
  148.       mov     ax,199
  149.       mov     _gdmaxrow,ax
  150.       mov     al,3
  151.       jmp     short done
  152. mono:
  153.       mov     ax,4
  154.       mov     _gdmaxpal,ax
  155. done:
  156.       xor     ah,ah
  157.       mov     _gdtype,al
  158.  
  159.       pop     bp
  160.       ret
  161.  
  162. _gpparms  endp
  163.  
  164. _text      ends
  165.       end
  166.